Stacking-Based Context-Sensitive Points-to Analysis for Java

نویسندگان

  • Xin Li
  • Mizuhito Ogawa
چکیده

The precision of Java points-to analysis has always to be sacrificed for practical scalability. In particular, almost all the existing scalable analysis are based on cloning calling contexts [2] to obtain context-sensitivity. As such, recursive procedure calls have to be over-approximated inevitably in the analysis. However, empirical study on practiced Java benchmarks shows that typically more than one thousand methods are involved in strongly connected components of the call graph. Therefore imprecise treatment on various recursions can potentially induce a great loss on precision. In view of this, we exploit a so-called stackingbased approach to context-sensitivity. By encoding the program as a pushdown system, the program calling context in terms of valid call paths are managed by the unbounded pushdown stack. Therefore, procedure calls are guaranteed to always return to the most recent call sites, and no limit is required on the call depth and recursions. We present and develop Japot, a scalable stacking-based context-sensitive points-to analysis for Java with no restriction on procedure calls. The novelty of our proposal is improving program modelling and iterative procedures in the analysis, which are keys to make the analysis scalable. Our empirical studies shows that the analysis scales well to Java applications of significant size. A pushdown system is known to naturally model procedureoriented programs. We present ideas for modelling and analyzing object-oriented program features with pushdown model checking techniques. Applied to pointsto analysis, such an extension provides the analysis with context-sensitivities regarding heap abstraction, heap access and call graph construction. Program analysis is observed to be regarded as model checking of abstract interpretation. Following this methodology, program analysis naturally enjoys soundness by applying abstract interpretation and “push-button” facilities from model checking. Based on this insight, we exploit weighted pushdown model checking [1] as the underlying analysis engine of our static analysis.

برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

An Ahead-of-time Yet Context-Sensitive Points-to Analysis for Java

Points-to analysis is a prerequisite of program verification and static analysis on Java programs. It is known that call graph is typically constructed on-the-fly when points-to analysis proceeds for a better precision. In this work, we propose an ahead-of-time yet context-sensitive points-to analysis for Java as all-in-one weighted pushdown model checking. The analysis is context-sensitive in ...

متن کامل

Probabilistic Points-to Analysis for Java

Probabilistic points-to analysis is an analysis technique for defining the probabilities on the points-to relations in programs. It provides the compiler with some optimization chances such as speculative dead store elimination, speculative redundancy elimination, and speculative code scheduling. Although several static probabilistic points-to analysis techniques have been developed for C langu...

متن کامل

Scaling CFL-Reachability-Based Points-To Analysis Using Context-Sensitive Must-Not-Alias Analysis

Pointer analyses derived from a Context-Free-Language (CFL) reachability formulation achieve very high precision, but they do not scale well to compute the points-to solution for an entire large program. Our goal is to increase significantly the scalability of the currently most precise points-to analysis for Java. This CFL-reachability analysis depends on determining whether two program variab...

متن کامل

Sable Research Group Context - sensitive points - to analysis : is it worth it ?

We present the results of an empirical study evaluating the precision of subset-based points-to analysis with several variations of context sensitivity on Java benchmarks of significant size. We compare the use of call site strings as the context abstraction, object sensitivity, and the BDD-based context-sensitive algorithm proposed by Zhu and Calman, and by Whaley and Lam. Our study includes a...

متن کامل

Efficient Pointer Analysis of Java in Logic

Points-to analysis for Java benefits greatly from context sensitivity. CFL-reachability and k-limited context strings are two approaches to obtaining context sensitivity with different advantages: CFL-reachability allows local reasoning about data value flow and thus is suitable for demand-driven analyses, whereas k-limited analyses allow object sensitivity which is a superior calling-context a...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

عنوان ژورنال:

دوره   شماره 

صفحات  -

تاریخ انتشار 2009